package leetcode.mockinterview.q1;

import java.util.*;

public class Solution {

    public static void main(String[] args) {
//        int[] nums1 = {1,2,2,1};
        int[] nums1 = {3,1,2};
//        int[] nums2 = {2,2};
        int[] nums2 = {1,1};
        int[] result = intersect(nums1, nums2);
        System.out.println(Arrays.toString(result));
    }

    /**
     * 输入: nums1 = [1,2,2,1], nums2 = [2,2]
     * 输出: [2,2]
     * 输入: nums1 = [3, 1, 2], nums2 = [1,1]
     * 输出: [1]
     * @param nums1
     * @param nums2
     * @return
     */
    public static int[] intersect(int[] nums1, int[] nums2) {
        List<Integer> list = new ArrayList<>();
        int[] result;
        int arrLen1 = nums1.length;
        int arrLen2 = nums2.length;
        //如果数组1长度比数组2长度小
        //先选择长度小的数组作为基础数组，长度长的数组用来遍历，遍历的每个元素进行比对
        if (arrLen1 <= arrLen2){
//            result = new int[arrLen1];
            for (int i = 0; i < arrLen2; i++) {
                for (int j = 0; j < arrLen1; j++) {
                    if (nums2[i] == nums1[j]){
//                        result[i] = nums2[j];
                        list.add(nums1[j]);
                        break; //是否可以停掉？
                    }
                }
            }
        }else {
//            result = new int[arrLen2];
            for (int i = 0; i < arrLen1; i++) {
                for (int j = 0; j < arrLen2; j++) {
                    if (nums1[i] == nums2[j]){
//                        result[i] = nums1[j];
                        list.add(nums2[j]);
                        break; //是否可以停掉？
                    }
                }
            }
        }


        int resultLength = list.size();
        result = new int[resultLength];
        for (int i = 0; i < resultLength; i++) {
            result[i] = list.get(i);
        }
        return result;
    }
}
